from django.db import models

class Deancte(models.Model):
    '''部门表'''
    title =models.CharField(verbose_name='标题',max_length=32)

    # 相对于把对象的值获取出来   __str__
    def __str__(self):
        return self.title

class UserInfo(models.Model):
    '''员工表'''
    name=models.CharField(verbose_name='姓名',max_length=16)
    password=models.CharField(verbose_name='密码',max_length=64)
    age=models.IntegerField(verbose_name='年龄')
    # max_digits=10 最长能够存放10位数 ,decimal_places=2  小数位为2位  ,default=0  当用户没有输入值的时候 默认值为0
    account=models.DecimalField(verbose_name='账户余额',max_digits=10,decimal_places=2,default=0)
    create_time=models.DateTimeField(verbose_name='入职时间')
    #在django中做的约束
    gender_choices=(
        (1,'男'),
        (2,'女'),
    )
    # get_字段名_display()  这个是将数据库中的1/2 转为男/女
    gender=models.SmallIntegerField(verbose_name='性别',choices=gender_choices)

    #无约束
    #deprat_id=models.BigIntegerField(verbose_name='部门ID')
    #1.有约束
    # -to 与那张表进行关联
    # -to_field 表中的那一列关联
    #2.diango自动
    # 写的deprat
    #生成的数据列是 deprat_id
    #3.部门表被删除
    ## 3.1级联删除   on_delete=models.CASCADE   部门被删除 员工也会被删除
    deprat=models.ForeignKey(to="Deancte",to_field='id',on_delete=models.CASCADE,verbose_name='部门')
    ##3.2 置空
    # deprat = models.ForeignKey( to="Deancte", to_field='id', on_delete=models.CASCADE,null=True,blank=True)


#登录信息表
class DengLu(models.Model):
    user=models.CharField(verbose_name='用户名',max_length=32,default=0)
    password=models.IntegerField(verbose_name='密码',default=0)


##############靓号管理######################
class LiangInfo(models.Model):
    # 靓号表
    mobile=models.CharField(verbose_name='手机号',max_length=11)
    # 想要允许为空 null=True  blank=True
    price=models.IntegerField(verbose_name='价格',default=0)
    # 元组套元组
    level_choices=(
        ( 1, '1级' ),
        ( 2, '2级' ),
        ( 3, '3级' ),
        ( 4, '4级' ),
    )
    # SmallIntegerField最小整型
    level =models.SmallIntegerField(verbose_name='级别',choices=level_choices,default=1)
    status_choies=(
        (1,'已占用'),
        (2,'未占用'),
    )
    status=models.SmallIntegerField(verbose_name='状态',choices=status_choies,default=2)

class Admins(models.Model):
    # 管理员表
    user_n=models.CharField(verbose_name='用户名',max_length=32)
    password=models.CharField(verbose_name='密码',max_length=64)

    def __str__(self):
        return self.user_n


class Order(models.Model):
   # 订单列表
   oid = models.CharField(verbose_name='订单号',max_length=64)
   title=models.CharField(verbose_name='名称',max_length=32)
   price=models.IntegerField(verbose_name='价格')
   status_chioes=(
       (1,'已支付'),
       (2,'未支付')
   )
   status=models.SmallIntegerField(verbose_name='支付状态',choices=status_chioes,default=1)
   # 关联员工表
   adminUser=models.ForeignKey(verbose_name='管理员',to='Admins',on_delete=models.CASCADE)

class Boss(models.Model):
    #老板表
    name=models.CharField(verbose_name='姓名',max_length=32)
    age=models.IntegerField(verbose_name='年龄')
    img=models.CharField(verbose_name='头像',max_length=128)


class City(models.Model):
    #城市表
    name=models.CharField(verbose_name='名称',max_length=32)
    count=models.IntegerField(verbose_name='数量')
    #本质上数据库也是CharField,自动保存数据。   upload_to='city/'  就是在media文件夹下新建一个city文件夹 然后图片保存在里面
    img=models.FileField(verbose_name='LOGO',max_length=128,upload_to='city/')
    # img = models.FileField( verbose_name='LOGO', max_length=128)